As development of semiconductor technologies, integrated circuit (IC) designer can integrate more and more complicated functions to a single wafer, and system on a chip (SOC) comes into being as the IC gradually changes into an integrated system. In the narrow sense, the SOC is an integration of electronic information systems; while in the generalized sense, the SOC is a small microelectronic system. In the SOC, digital-analog hybrid circuits are integrated on the single wafer. The SOC includes various function modules such as an embedded core, a storage, a dedicated function module, an input/output interface module, etc. In addition, model algorithm, chip structure, hierarchical circuits and even device design are comprehensively taken into consideration in the SOC, to implement, with one single chip, all functions of a whole computer.
As the function modules get elaborated and complicated, the quantity of data links for information communication among the function modules is greatly increased, which results in the difficulty in SOC design and an increasing system consumption of the SOC. Around the year 1999, several research groups proposed a new integrated circuit architecture, Network On Chip (NOC). A basic concept of the NOC lies in that, computer network technologies are migrated into chip design to thoroughly overcome disadvantages of the SOC architecture.
The NOC may be defined as a multiprocessor system in which network-based communications are achieved with one single chip. The NOC includes routing nodes and communication nodes. The routing node is for fulfilling general computation tasks, while the communication mode is in charge of data communications between routing nodes. A communication approach for a distributed computer system is used in a network of the communication nodes, and communication tasks are fulfilled by using routing and packet switching technologies.
Obviously, the router is a core component of the NOC, which is for forwarding and transmitting packets. A conventional router mainly includes components such as a virtual channel, a data buffer, a priority arbiter, a crossbar switch, etc. In recent researches, an NOC without virtual channel and data buffer, called NOC without buffer, is proposed to improve performance of the NOC.
Conventionally, the NOC without buffer has no function of buffering; hence, when the NOC without buffer forwards packets, the routing node needs to transmit a received packet before receiving a next packet, no matter whether the received packet is to be transmitted through an expected forwarding port. In this way, in a case that multiple packets compete for ports, only one packet can be allocated with its expected port while all other packets are transmitted to unexpected ports, and accordingly, deflections take place on the packets transmitted to unexpected ports. In addition, in a case that a new packet needs to be injected into network through the forwarding port of the NOC without buffer, the new packet cannot be injected immediately if there is no free injection port in the router, resulting in a starvation. Hence, in a case that in the NOC without buffer there are multiple packets to be transmitted, the multiple packets would be transmitted randomly; consequently, a packet having a high priority is deflected, and the NOC without buffer cannot ensure the performance of a program having a high priority.